A real-time control system is used to control a device, or series of devices, based on inputs from the devices. A real-time control system must perform a series of operations repeatedly in a timed loop or control cycle. The general operations of a real-time control system typically follow the following pattern: receive inputs from the sensors/devices, perform a series of control calculations, adjust the actuators, etc. For a real-time control system to be effective the three operations must be repeated in a timed loop, with the sample time being small relative to the natural frequency of the system.
Control systems require knowledge of previous sample loops in successive sample loops, meaning the systems require memory. This is usually accomplished by reserving memory in a computer system and reusing it for each successive loop. The typical problem with operating many independent real-time control systems in a server based environment is that it would require that servers be instantiated with a persistent process (or thread) for each control system. The memory usage as compared to the processing usage of this type of server based system is very large, and results in considerable wasted capacity. Further, the start-up and shutdown for such a system would tend to make it fragile in a cloud based environment, and this leads to a lack of scalability.